package main

import (
	"fmt"
	"net/http"
	"strings"

	"github.com/gin-gonic/gin"
)

func ginExample() {
	// 1. 创建路由
	r := gin.Default()
	// 3. 绑定路由规则
	// 浏览器输入：127.0.0.1:8080
	r.GET("/", func(c *gin.Context) {
		c.String(http.StatusOK, "hello world!")
	})
	// 浏览器输入：127.0.0.1:8080/user/xieli/gopher
	r.GET("/user/:name/*action", func(c *gin.Context) {
		name := c.Param("name")
		action := c.Param("action")
		//截取/
		action = strings.Trim(action, "/")
		c.String(http.StatusOK, name+" is "+action)
	})
	// 浏览器输入：127.0.0.1:8080/user 或 127.0.0.1:8080/user?name=xieli
	r.GET("/user", func(c *gin.Context) {
		// 指定默认值
		name := c.DefaultQuery("name", "David")
		c.String(http.StatusOK, fmt.Sprintf("Hello %s", name))
	})
	// 浏览器输入：127.0.0.1:8080/ping
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	// 3. 监听端口
	r.Run(":8080")
}
